package com.dosen.api.third.party.cmp.model.login;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @version V1.0
 * @author: guangcheng
 * @date: 2023/1/12 14:26
 * @description:
 */
@NoArgsConstructor
@Data
public class CmpUser {

    /**
     * gmtCreate
     */
    @JSONField(name = "gmtCreate")
    public String gmtCreate;
    /**
     * gmtModify
     */
    @JSONField(name = "gmtModify")
    public String gmtModify;
    /**
     * creatorId
     */
    @JSONField(name = "creatorId")
    public Integer creatorId;
    /**
     * ownerId
     */
    @JSONField(name = "ownerId")
    public Object ownerId;
    /**
     * menderId
     */
    @JSONField(name = "menderId")
    public Object menderId;
    /**
     * name
     */
    @JSONField(name = "name")
    public String name;
    /**
     * status
     */
    @JSONField(name = "status")
    public String status;
    /**
     * deleted
     */
    @JSONField(name = "deleted")
    public Boolean deleted;
    /**
     * props
     */
    @JSONField(name = "props")
    public Object props;
    /**
     * remark
     */
    @JSONField(name = "remark")
    public Object remark;
    /**
     * id
     */
    @JSONField(name = "id")
    public Integer id;
    /**
     * uuid
     */
    @JSONField(name = "uuid")
    public String uuid;
    /**
     * account
     */
    @JSONField(name = "account")
    public String account;
    /**
     * origin
     */
    @JSONField(name = "origin")
    public String origin;
    /**
     * password
     */
    @JSONField(name = "password")
    public String password;
    /**
     * email
     */
    @JSONField(name = "email")
    public Object email;
    /**
     * mobile
     */
    @JSONField(name = "mobile")
    public String mobile;
    /**
     * idNumber
     */
    @JSONField(name = "idNumber")
    public Object idNumber;
    /**
     * birthday
     */
    @JSONField(name = "birthday")
    public Object birthday;
    /**
     * workPhone
     */
    @JSONField(name = "workPhone")
    public Object workPhone;
    /**
     * shortPhone
     */
    @JSONField(name = "shortPhone")
    public Object shortPhone;
    /**
     * workAddress
     */
    @JSONField(name = "workAddress")
    public Object workAddress;
    /**
     * state
     */
    @JSONField(name = "state")
    public Object state;
    /**
     * secondaryEmail
     */
    @JSONField(name = "secondaryEmail")
    public Object secondaryEmail;
    /**
     * sex
     */
    @JSONField(name = "sex")
    public Object sex;
    /**
     * mainDepart
     */
    @JSONField(name = "mainDepart")
    public Integer mainDepart;
    /**
     * mainDepartName
     */
    @JSONField(name = "mainDepartName")
    public String mainDepartName;
    /**
     * departIds
     */
    @JSONField(name = "departIds")
    public String departIds;
    /**
     * departsName
     */
    @JSONField(name = "departsName")
    public List<String> departsName;
    /**
     * managerOrgIds
     */
    @JSONField(name = "managerOrgIds")
    public Object managerOrgIds;
    /**
     * managerOrgNames
     */
    @JSONField(name = "managerOrgNames")
    public Object managerOrgNames;
    /**
     * loginStatus
     */
    @JSONField(name = "loginStatus")
    public Boolean loginStatus;
    /**
     * portrait
     */
    @JSONField(name = "portrait")
    public Object portrait;
    /**
     * sessionId
     */
    @JSONField(name = "sessionId")
    public String sessionId;
    /**
     * lastLoginDate
     */
    @JSONField(name = "lastLoginDate")
    public String lastLoginDate;
    /**
     * apps
     */
    @JSONField(name = "apps")
    public List<Integer> apps;
    /**
     * appRoles
     */
    @JSONField(name = "appRoles")
    public List<AppRolesDTO> appRoles;
    /**
     * providerName
     */
    @JSONField(name = "providerName")
    public Object providerName;
    /**
     * manager
     */
    @JSONField(name = "manager")
    public Object manager;
    /**
     * provider
     */
    @JSONField(name = "provider")
    public Boolean provider;
    /**
     * departments
     */
    @JSONField(name = "departments")
    public List<DepartmentsDTO> departments;
    /**
     * projectId
     */
    @JSONField(name = "projectId")
    public Object projectId;
    /**
     * isSet
     */
    @JSONField(name = "isSet")
    public Object isSet;
    /**
     * roleIds
     */
    @JSONField(name = "roleIds")
    public Object roleIds;

    /**
     * AppRolesDTO
     */
    @NoArgsConstructor
    @Data
    public static class AppRolesDTO {
        /**
         * id
         */
        @JSONField(name = "id")
        public Integer id;
        /**
         * code
         */
        @JSONField(name = "code")
        public String code;
        /**
         * roles
         */
        @JSONField(name = "roles")
        public List<Integer> roles;
    }

    /**
     * DepartmentsDTO
     */
    @NoArgsConstructor
    @Data
    public static class DepartmentsDTO {
        /**
         * tenantId
         */
        @JSONField(name = "tenantId")
        public Integer tenantId;
        /**
         * displayName
         */
        @JSONField(name = "displayName")
        public String displayName;
        /**
         * fullName
         */
        @JSONField(name = "fullName")
        public String fullName;
        /**
         * orgId
         */
        @JSONField(name = "orgId")
        public Integer orgId;
        /**
         * orgName
         */
        @JSONField(name = "orgName")
        public String orgName;
        /**
         * main
         */
        @JSONField(name = "main")
        public Boolean main;
    }
}

